Public safety specialists such as police officers, firemen and ambulance operators rely extensively on land mobile radio systems to provide prompt and reliable radio communications. Reliability is especially important since a failed communication can literally mean the difference between life and death in critical public safety scenarios.
Various effects can degrade the reliability of radio communications to result in garbled communications. Noise and fading are always present on a communication channel. There is also a possibility that another transmitter operating at or near the same frequency can cause interference. Such channel impairments can adversely affect communications reliability and intelligibility.
Radio designers use various techniques to increase communications reliability despite channel impairments such as noise, fading and interference. "Channel coding" is one such well known technique. Channel coding refers to a class of signal transformations designed to improve communications performance by enabling transmitted signals to withstand better the effects of channel impairments. Usually, the goal of channel coding is to reduce the probability of transmission errors by enhancing the ability of the receiver's detection process to distinguish between the different symbols. The detection process at the receiver thus can better detect and correct errors introduced by channel impairments. Reducing such errors increases reliability, clarity and intelligibility.
FIG. 1 shows one simplified example of general overall arrangements within an example digital land mobile radio transceiver system 50 that uses channel coding techniques to increase signal transmission reliability. To transmit using system 50, the radio operator talks into microphone 52. Voice signals from microphone 52 are amplified (and filtered) by a speech amplifier block 54. These signals are then sampled (i.e., converted into digitized speech bits) by an analog-to-digital converter 55, and processed by a speech encode block 56. Speech encode block 56 may, for example, use conventional "vocoding" techniques to "compress" the digital representation of the speech and reduce the radio bandwidth required for transmission. A channel encoder block 58 takes the "vocoded" digitized speech signals and further processes them (e.g., by adding redundancy) to provide enhanced error detection and correction capability as described above. Modulator block 60 impresses the coded digital signals onto a radio frequency (RF) carrier signal. The modulated RF carrier may (after appropriate up-conversion to an operating frequency as necessary by a frequency select process 61) be amplified by an RF power amplifier 62 and applied to an antenna 66 via a "T/R" (transmit-receive) switch 64 (or other conventional arrangement such as a duplexer). Antenna 66 transmits the modulated RF signal over the air to a distantly located receiving station (e.g., a repeater or a base station).
To receive signals, radio system 50 passes the signals from the antenna 66 through the T/R switch 64 to an RF amplifier block 68. RF amplifier block 68 amplifies the weak antenna signals, and frequency selection process 69 (e.g., conventional down-conversion and further intermediate frequency or other filtering) selects the particular received signal of interest. Demodulator 70 recovers the coded digital bit stream from the RF carrier. The receiver's channel decode block 72 detects and corrects errors in the demodulated signal (based on the particular channel coding employed by channel encode block 58), and outputs a recovered, error-corrected digital bit stream plus a reliability estimate. Speech decode block 74 performs an operation inverse to the operation performed by the transmitter's speech encode block 56 (e.g., "expanding" the digitized speech representation) to recover digitized speech based on the channel-decoded data and the reliability estimate. This digitized speech is converted back into an analog signal by a digital-to-analog conversion process 75, amplified by audio amplifier 76, and reproduced as sound by loudspeaker 78.
There are many types of channel coding techniques that a designer might choose to use in radio system 50 for channel encode block 58 and channel decode block 72. See, for example, Sklar, Digital Communications (Prentice Hall 1988), pages 245-380 for a representative survey. Channel coding technique selection usually represents a tradeoff between performance and complexity. More complex channel coding techniques can offer increased performance at the cost of increased complexity. Since it is usually important to make portable and mobile radios simple, small and inexpensive, radio designers may not always have the luxury of choosing the highest performance channel coding or decoding techniques available.
One basic complexity and performance characteristic of a channel decoder relates to whether the decoder makes "soft" or "hard" decisions. Of course, radios generally need to at least eventually make a "hard" or firm decision identifying each received symbol--since the radio's audio processing circuits need a definitive signal as opposed to an output saying "I don't know" or "I'm not sure." However, the stage at which this "hard" decision is made is an important factor in determining the complexity of the channel decoder. For less complex channel decoders, a "hard" decision (e.g., "I received a 0 bit" or "I received a 1 bit") is made at a relatively early stage (e.g., at the demodulator's output). More complex channel decoders replace this "hard" decision with a "soft" decision (e.g., 8 different levels) that provides additional information (e.g., a "measure of confidence" reliability estimate). The idea behind soft decisions is to provide the channel decoder with more information, which the decoder then uses for recovering the message sequence with better performance (e.g., using maximum likelihood sequence estimate decoding techniques) than is achievable using hard-decision decoding. But, since a soft-decision decoder needs to store and process much more data, it provides this increased performance only at the cost of significantly greater complexity.
Work has also been done in the past to make the speech coding process less susceptible to bit errors. It has been recognized that error rate estimates can be used to increase speech decoder performance. See, for example, U.S. Pat. No. 5,247,579 to Hardwick, which describes an improved multiband excitation (IMBE) speech coder system that uses error correction estimated error rates and to improve speech decoding by repeating speech decoding quantized model parameters when the error rate exceeds a predetermined level.
A particular channel and speech coding/decoding technique that represents an acceptable cost-performance tradeoff for some mobile radio applications is the IMBE speech coder and error control code (ECC) technology developed by Digital Voice Systems, Inc. (DVSI) of Burlington Massachusetts and licensed by Ericsson Inc. for use in Ericsson's PRISM TDMA and narrowband land mobile radio products. This particular technology employs a channel decoder that is a "hybrid" between a soft-decision decoder and a hard-decision decoder. Briefly, DVSI's design provides "errors and erasures" channel decoding based on a "hard" decision, and generates a reliability estimate for use in a subsequent speech decoder process.
FIG. 2 shows a simplified block diagram of DVSI's IMBE decoder module 100, which includes a channel coder/decoder 72A and a speech coder/decoder 74A within a single integrated unit such as a VLSI integrated circuit chip or plug-in board. In this design, the bit stream output r of the receiver's demodulator 70A is provided to the input of decoder module 100. Within decoder module 100, the channel decoder 72A generates a set of decoded codewords y and a reliability estimate RE that it provides to speech decoder 74A. Speech decoder 74A uses both the codeword output r and the reliability estimate RE to decode and reconstruct the digitized voice bit stream DV which it outputs for further audio processing (e.g., digital-to-analog conversion and analog audio amplification).
FIG. 2A shows a simplified flowchart of the process performed by the FIG. 2 channel decoder 72A. The process receives the input r (the received vector produced by the demodulator 70A). Each component r.sub.i in this vector r is an integer between 0 and (2.sup.m -1), where m is the number of soft decision bits. The process first produces z, a hard decision version of r, using a threshold of (2.sup.m-1 -1)/2 (block 102). The process also identifies t locations where r.sub.i is closest to the threshold--the quantity t being the decoding radius of the code (e.g., t=1 for a Hamming code) (block 104). The process next erases the bits from z corresponding to the t locations (i.e., the t most unreliable bits) (block 106); and creates 2.sup.t vectors z.sup.(j), all with the unerased bits of z, and each with a different combination replacing the erased bits (block 108). The z.sup.(j) vectors are then decoded, producing 2.sup.t codewords y.sup.(j) (block 110). The process selects the final codeword choice from among these codewords y.sup.(j), the final codeword choice being such that (2.sup.m -1)y.sup.(j) is closest to r in Euclidean distance (block 112). The process also produces the Hamming weight b of the error pattern e=z-y as a reliability estimate for y (block 114). The process outputs these resulting selected codewords and an associated reliability indicator to the speech decoder 74A--which makes use of both types of data in the speech decoding process it performs.
Hamming weight and Euclidean distance referred to above are well known techniques for quantifying the relevant distance between code vectors. Euclidean distance is a common geometrical quantity that takes into account the directions of vectors in multi-dimensional space. In coding contexts, Euclidean distance is commonly used in soft decision decoding to choose, based on probabilities, an output codeword that is "closest" (in multi-dimensional code space) to the received input vector. Euclidean distance can be determined by computing the inner ("dot") product between the two vectors. For example, a soft decision decoder may choose a codeword U.sup.(m') if it maximizes ##EQU1## where Z is the received vector or pattern (sequence) comprising elements z.sub.i,j, and U.sup.(m) is the output codeword sequence. This technique chooses the codeword U.sup.(m') that is closest in Euclidean distance to the received sequence.
Hamming weight is based on Hamming distance -- another, less complex measure of coding distance. The Hamming distance between two code vectors is defined to be the number of elements in which they differ. Thus, the Hamming weight of an error pattern is equal to its Hamming distance from the all-zeros vector--and hence is simply the number of non-zero elements in the pattern (i.e., the number of ones in a binary vector).
Although the FIG. 2 arrangement may represent one acceptable cost-performance tradeoff, it suffers from a disadvantage in that its IMBE channel decoder 72A makes only partial use of the soft information available to it. A different type of channel decoder, known as a "maximum likelihood sequence estimation" (MLSE) decoder, is the optimal soft decision decoder under certain conditions. Low complexity implementations (e.g., trellis decoders) have recently been developed that make it possible to perform MLSE decoding more efficiently. Such low complexity implementations may be very suitable for base stations and radio repeaters--where additional channel coder complexity may be justified because of the increased performance (e.g., reduced speech garbling) it can offer. It therefore seems attractive to substitute a MLSE decoder arrangement for the IMBE ECC decoder 72A shown in FIG. 2 (e.g., as an optional feature, an add on or a retrofit) in at least some applications.
Unfortunately, the closely integrated design of the FIG. 2 example decoder module 100 makes it impossible to simply "swap out" or physically bypass the existing decoder 72A without also bypassing the associated speech decoder 74A. Module 100 may be designed (e.g., for reduced pin out or for other reasons) such that the inputs to speech decoder 74A are not conveniently accessible to the outside world. Moreover, there may be a close integration between channel decoder 72A and speech decoder 74A due to the speech decoder's use of the channel decoder's particular error rate estimate--making it difficult or impossible to use the speech decoder without also using its associated channel decoder. Thus, the only practical way to use speech decoder 74A may be in conjunction with existing IMBE channel decoder 72A. Total redesign and replacement of the entire module 100 to provide both a new channel decoder and a new speech decoder may not be cost effective, and in any event would be extremely difficult or impossible in the case of trying to retrofit or upgrade an already manufactured radio.
We have discovered a technique for effectively bypassing the existing channel decoder 72A without requiring it to be physically removed or disconnected from the radio system 50. Briefly, we effectively bypass the existing decoder 72A by feeding it information generated through use of an additional, higher performance (e.g., MLSE) decoder. This higher performance decoder may, for example, use a maximum likelihood sequence estimation (MLSE) channel decoding technique. The additional information forces the existing decoder to produce outputs corresponding to the higher performance decoder's outputs. To do this, we break the connection between the demodulator 70A output and the existing channel decoder 72A, and insert the additional, high performance decoder between the demodulator's output and the existing decoder's input.
The MLSE decoder in this example produces a sequence of error-corrected estimated codewords and an error pattern estimate. In accordance with one aspect of our invention, we use the MLSE decoder's error pattern estimate to--under at least some conditions--generate artificial errors that effectively "fool" the existing decoder into providing an appropriate error estimate to the speech decoder. This allows the speech decoder to operate based on an accurate error estimate--even though the error estimate may take into account errors that the existing decoder is incapable of correcting itself!
We can selectively insert these artificial errors into the error-corrected output of the MLSE decoder. These artificially-introduced errors are of a type and nature that they can be reliably detected and corrected by the existing decoder 72A. Moreover, these artificial errors are specified so that the reliability estimate produced by the existing decoder 72A will be forced to match--as closely as possible given the limitations of the existing decoder--the error pattern estimate produced by the higher performance decoder.
Thus, in accordance with techniques provided by this invention, the existing IMBE decoder 72A transforms its input into an exact replica of the higher performance decoder's codeword output (before introduction of artificial errors)--and also produces a reliability estimate that matches (within the constraints of the existing decoder) the error pattern estimate of the higher performance decoder. Hence, the existing decoder 72A is effectively bypassed or made "transparent"--allowing the higher performance decoder's output (both decoded codewords and error pattern estimate) to effectively be fed to the input of speech decoder 74A.
Our technique can be used, for example, for testing new MLSE decoders on the current platform, or to add an MLSE decoder as an upgrade on existing receivers.